#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
//int main()
//{
//	int* pf = (int*)malloc(4 * sizeof(int));
//	if (pf == NULL)
//	{
//		perror("malloc");
//      return 1;
//	}
//	for (int i = 0; i < 4; i++)
//	{
//		pf[i] = i;
//		printf("%d ", pf[i]);
//	}
//	free(pf);
//	pf = NULL;
//
//	return 0;
//}

//int main()
//{
//	int* pf = (int*)calloc(5, sizeof(int));
//	if (pf == NULL)
//	{
//		perror("calloc");
//      return 1;
//	}
//	for (int i = 0; i < 5; i++)
//	{
//		printf("%d ", *(pf + i));
//	}
//	free(pf);
//	pf = NULL;
//	return 0;
//}

//int main()
//{
//	int* pf = (int*)malloc(5 * sizeof(int));
//	if (pf == NULL)
//	{
//		perror("malloc");
//		return 1;
//	}
//	int* ptr = pf;
//	ptr = (int*)realloc(ptr, 10 * sizeof(int));
//	if (ptr == NULL)
//	{
//		perror("realloc");
//		return 1;
//	}
//	pf = ptr;
//	for (int i = 0; i < 10; i++)
//	{
//		pf[i] = i;
//		printf("%d ", pf[i]);
//	}
//	free(pf);
//	pf = NULL;
//	return 0;
//}

int main()
{
	int** pf = (int**)malloc(3 * sizeof(int*));
	if (pf == NULL)
	{
		perror("malloc");
		return 1;
	}
	for (int i = 0; i < 3; i++)
	{
		pf[i] = (int*)malloc(5 * sizeof(int));
		if (pf[i] == NULL)
		{
			perror("malloc");
			return 1;
		}
	}
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 5; j++)
		{
			pf[i][j] = 5 * i + j;
			printf("%d  ", pf[i][j]);
		}
		printf("\n");
	}
	for (int i = 0; i < 3; i++)
	{
		free(pf[i]);
	}
	free(pf);
	pf = NULL;
	return 0;
}


